package ihm.commun.converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;

/**
 * Converter pour les date/heure
 *
 * @author l.parrot1
 */
@FacesConverter(value = "dateTimeConverter")
public class DateTimeConverter implements Converter {

    /**
     * formattage pour la date/heure
     */
    private final static String PATTERN = "dd/MM/yyyy HH:mm:ss";

    /**
     * Constructeur de la classe <code>DateTimeConverter</code>.
     */
    public DateTimeConverter() {
    }

    /**
     * @see
     * javax.faces.convert.Converter#getAsObject(javax.faces.context.FacesContext,
     * javax.faces.component.UIComponent, java.lang.String)
     */
    @Override
    public Object getAsObject(FacesContext context, UIComponent component, String value) {
        try {
            return new SimpleDateFormat(PATTERN).parse(value);
        } catch (ParseException e) {
            return null;
        }
    }

    /**
     * @see
     * javax.faces.convert.Converter#getAsString(javax.faces.context.FacesContext,
     * javax.faces.component.UIComponent, java.lang.Object)
     */
    @Override
    public String getAsString(FacesContext context, UIComponent component, Object value) {
        String result = null;
        if (value != null) {
            Date maDate = (Date) value;
            result = new SimpleDateFormat(PATTERN).format(maDate);
        }
        return result;
    }
}
